/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package org.dengues.model.database;

import org.eclipse.emf.common.util.EList;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Diagram</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link org.dengues.model.database.DatabaseDiagram#getStatus <em>Status</em>}</li>
 *   <li>{@link org.dengues.model.database.DatabaseDiagram#getDbChildren <em>Db Children</em>}</li>
 *   <li>{@link org.dengues.model.database.DatabaseDiagram#getConnId <em>Conn Id</em>}</li>
 *   <li>{@link org.dengues.model.database.DatabaseDiagram#getWholeSql <em>Whole Sql</em>}</li>
 *   <li>{@link org.dengues.model.database.DatabaseDiagram#getSectionColumns <em>Section Columns</em>}</li>
 *   <li>{@link org.dengues.model.database.DatabaseDiagram#getSectionFilters <em>Section Filters</em>}</li>
 *   <li>{@link org.dengues.model.database.DatabaseDiagram#getSectionGroups <em>Section Groups</em>}</li>
 *   <li>{@link org.dengues.model.database.DatabaseDiagram#getSectionSorts <em>Section Sorts</em>}</li>
 *   <li>{@link org.dengues.model.database.DatabaseDiagram#getSectionHavings <em>Section Havings</em>}</li>
 *   <li>{@link org.dengues.model.database.DatabaseDiagram#getSectionUnions <em>Section Unions</em>}</li>
 *   <li>{@link org.dengues.model.database.DatabaseDiagram#isDistinct <em>Distinct</em>}</li>
 * </ul>
 * </p>
 *
 * @see org.dengues.model.database.DatabasePackage#getDatabaseDiagram()
 * @model
 * @generated
 */
public interface DatabaseDiagram extends AbstractDBObject {
    /**
     * Returns the value of the '<em><b>Status</b></em>' attribute.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Status</em>' attribute isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Status</em>' attribute.
     * @see #setStatus(String)
     * @see org.dengues.model.database.DatabasePackage#getDatabaseDiagram_Status()
     * @model
     * @generated
     */
    String getStatus();

    /**
     * Sets the value of the '{@link org.dengues.model.database.DatabaseDiagram#getStatus <em>Status</em>}' attribute.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param value the new value of the '<em>Status</em>' attribute.
     * @see #getStatus()
     * @generated
     */
    void setStatus(String value);

    /**
     * Returns the value of the '<em><b>Db Children</b></em>' containment reference list.
     * The list contents are of type {@link org.dengues.model.database.DiagramChild}.
     * It is bidirectional and its opposite is '{@link org.dengues.model.database.DiagramChild#getDbDiagram <em>Db Diagram</em>}'.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Db Children</em>' containment reference list isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Db Children</em>' containment reference list.
     * @see org.dengues.model.database.DatabasePackage#getDatabaseDiagram_DbChildren()
     * @see org.dengues.model.database.DiagramChild#getDbDiagram
     * @model type="org.dengues.model.database.DiagramChild" opposite="dbDiagram" containment="true"
     * @generated
     */
    EList getDbChildren();

    /**
     * Returns the value of the '<em><b>Conn Id</b></em>' attribute.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Conn Id</em>' attribute isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Conn Id</em>' attribute.
     * @see #setConnId(String)
     * @see org.dengues.model.database.DatabasePackage#getDatabaseDiagram_ConnId()
     * @model
     * @generated
     */
    String getConnId();

    /**
     * Sets the value of the '{@link org.dengues.model.database.DatabaseDiagram#getConnId <em>Conn Id</em>}' attribute.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param value the new value of the '<em>Conn Id</em>' attribute.
     * @see #getConnId()
     * @generated
     */
    void setConnId(String value);

    /**
     * Returns the value of the '<em><b>Whole Sql</b></em>' attribute.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Whole Sql</em>' attribute isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Whole Sql</em>' attribute.
     * @see #setWholeSql(String)
     * @see org.dengues.model.database.DatabasePackage#getDatabaseDiagram_WholeSql()
     * @model
     * @generated
     */
    String getWholeSql();

    /**
     * Sets the value of the '{@link org.dengues.model.database.DatabaseDiagram#getWholeSql <em>Whole Sql</em>}' attribute.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param value the new value of the '<em>Whole Sql</em>' attribute.
     * @see #getWholeSql()
     * @generated
     */
    void setWholeSql(String value);

    /**
     * Returns the value of the '<em><b>Section Columns</b></em>' containment reference list.
     * The list contents are of type {@link org.dengues.model.database.SectionColumns}.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Section Columns</em>' containment reference list isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Section Columns</em>' containment reference list.
     * @see org.dengues.model.database.DatabasePackage#getDatabaseDiagram_SectionColumns()
     * @model type="org.dengues.model.database.SectionColumns" containment="true"
     * @generated
     */
    EList getSectionColumns();

    /**
     * Returns the value of the '<em><b>Section Filters</b></em>' containment reference list.
     * The list contents are of type {@link org.dengues.model.database.SectionFilters}.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Section Filters</em>' containment reference list isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Section Filters</em>' containment reference list.
     * @see org.dengues.model.database.DatabasePackage#getDatabaseDiagram_SectionFilters()
     * @model type="org.dengues.model.database.SectionFilters" containment="true"
     * @generated
     */
    EList getSectionFilters();

    /**
     * Returns the value of the '<em><b>Section Groups</b></em>' containment reference list.
     * The list contents are of type {@link org.dengues.model.database.SectionGroups}.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Section Groups</em>' containment reference list isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Section Groups</em>' containment reference list.
     * @see org.dengues.model.database.DatabasePackage#getDatabaseDiagram_SectionGroups()
     * @model type="org.dengues.model.database.SectionGroups" containment="true"
     * @generated
     */
    EList getSectionGroups();

    /**
     * Returns the value of the '<em><b>Section Sorts</b></em>' containment reference list.
     * The list contents are of type {@link org.dengues.model.database.SectionSorts}.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Section Sorts</em>' containment reference list isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Section Sorts</em>' containment reference list.
     * @see org.dengues.model.database.DatabasePackage#getDatabaseDiagram_SectionSorts()
     * @model type="org.dengues.model.database.SectionSorts" containment="true"
     * @generated
     */
    EList getSectionSorts();

    /**
     * Returns the value of the '<em><b>Section Havings</b></em>' containment reference list.
     * The list contents are of type {@link org.dengues.model.database.SectionHavings}.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Section Havings</em>' containment reference list isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Section Havings</em>' containment reference list.
     * @see org.dengues.model.database.DatabasePackage#getDatabaseDiagram_SectionHavings()
     * @model type="org.dengues.model.database.SectionHavings" containment="true"
     * @generated
     */
    EList getSectionHavings();

    /**
     * Returns the value of the '<em><b>Section Unions</b></em>' containment reference list.
     * The list contents are of type {@link org.dengues.model.database.SectionUnions}.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Section Unions</em>' containment reference list isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Section Unions</em>' containment reference list.
     * @see org.dengues.model.database.DatabasePackage#getDatabaseDiagram_SectionUnions()
     * @model type="org.dengues.model.database.SectionUnions" containment="true"
     * @generated
     */
    EList getSectionUnions();

    /**
     * Returns the value of the '<em><b>Distinct</b></em>' attribute.
     * <!-- begin-user-doc -->
     * <p>
     * If the meaning of the '<em>Distinct</em>' attribute isn't clear,
     * there really should be more of a description here...
     * </p>
     * <!-- end-user-doc -->
     * @return the value of the '<em>Distinct</em>' attribute.
     * @see #setDistinct(boolean)
     * @see org.dengues.model.database.DatabasePackage#getDatabaseDiagram_Distinct()
     * @model
     * @generated
     */
    boolean isDistinct();

    /**
     * Sets the value of the '{@link org.dengues.model.database.DatabaseDiagram#isDistinct <em>Distinct</em>}' attribute.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param value the new value of the '<em>Distinct</em>' attribute.
     * @see #isDistinct()
     * @generated
     */
    void setDistinct(boolean value);

} // DatabaseDiagram
